/*
 * Copyright (C) 2012 Caldia Apps.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.caldia.android.frameworkG1.controller;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 画面遷移初期化
 * 
 * @author k-matsuda@caldia.org
 * 
 */
public class InitTrasitionManager extends InitActivityManager {

	/**
	 * カウンター
	 */
	private final AtomicInteger mCounter = new AtomicInteger(0);

	/**
	 * コンストラクタ
	 * 
	 * @param controller
	 *            画面遷移管理
	 * @param logNo
	 *            トラッキング用番号
	 */
	public InitTrasitionManager(final ITransitionManager controller,
			final int logNo) {
		super(controller, logNo);
	}

	@Override
	protected ITransitionManager getManager(final int logNo) {
		return (ITransitionManager) super.getManager(logNo);
	}

	/**
	 * モードマネージャ設定
	 * 
	 * @param modeManager
	 *            モードマネージャ
	 * @param logNo
	 *            トラッキング用番号
	 * @return モード番号
	 */
	public int addModeManager(final Class<? extends ModeManager> modeManager,
			final int logNo) {

		// モード番号
		final int modeNo = mCounter.getAndIncrement();

		getManager(logNo).addModeManager(modeNo, modeManager, logNo);

		return modeNo;
	}
}
